<?php
/*
 $Id$
 $Mod: Modular Front Page 201111 Kymation $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2010 osCommerce

 Released under the GNU General Public License
 */

require('includes/application_top.php');

// the following cPath references come from application_top.php
$category_depth = 'top';
if (isset($cPath) && tep_not_null($cPath)) {
	$categories_products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'");
	$categories_products = tep_db_fetch_array($categories_products_query);
	if ($categories_products['total'] > 0) {
		$category_depth = 'products'; // display products
	} else {
		$category_parent_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$current_category_id . "'");
		$category_parent = tep_db_fetch_array($category_parent_query);
		if ($category_parent['total'] > 0) {
			$category_depth = 'nested'; // navigate through the categories
		} else {
			$category_depth = 'products'; // category has no products, but display the 'no products' message
		}
	}
}

require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT);

require(DIR_WS_INCLUDES . 'template_top.php');

if ($category_depth == 'nested') {
	$category_query = tep_db_query("select cd.categories_name, c.categories_image from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$current_category_id . "' and cd.categories_id = '" . (int)$current_category_id . "' and cd.language_id = '" . (int)$languages_id . "'");
	$category = tep_db_fetch_array($category_query);
	?>

<div class="contentContainer">
<div class="contentText">

<table border="0" width="auto" cellspacing="10" cellpadding="2">
	<!-- Product image -->
	<tr>
		<img src="images/img_furnitureheader.jpg" class="imageFurnitureHeader" />
	</tr>
	
	<tr>
	<?php
	if (isset($cPath) && strpos('_', $cPath)) {
		// check to see if there are deeper categories within the current category
		$category_links = array_reverse($cPath_array);
		for($i=0, $n=sizeof($category_links); $i<$n; $i++) {
			$categories_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'");
			$categories = tep_db_fetch_array($categories_query);
			if ($categories['total'] < 1) {
				// do nothing, go through the loop
			} else {
				$categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name");
				break; // we've found the deepest category the customer is in
			}
		}
	} else {
		$categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$current_category_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name");
	}

	$number_of_categories = tep_db_num_rows($categories_query);

	$rows = 0;
	while ($categories = tep_db_fetch_array($categories_query)) {
		$rows++;
		$cPath_new = tep_get_path($categories['categories_id']);
		$width = (int)(100 / MAX_DISPLAY_CATEGORIES_PER_ROW) . '%';

		//TrungDH: show total products in categories.
		$first_element_categories = $categories['categories_id'];
		$products_in_category = tep_count_products_in_category($first_element_categories);
		$categories_quantity = '<label class="categorythumbquantity">' . $products_in_category . ' sản phẩm</label>';

		echo '        <td align="center" class="smallText categorythumb" valign="top"><a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">' . tep_image(DIR_WS_IMAGES . $categories['categories_image'], $categories['categories_name'], 162, 112) . '<br />' . $categories['categories_name'] . '<br><label class="categorythumbviewall">Xem tất cả</label></a>' .$categories_quantity. '</td>' . "\n";
		if ((($rows / 4) == floor($rows / 4)) && ($rows != $number_of_categories)) {
			echo '      </tr>' . "\n";
			echo '      <tr>' . "\n";
		}
	}

	// needed for the new products module shown below
	$new_products_category_id = $current_category_id;
	?>
	</tr>
</table>

<br />
	<?php /* include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); */ ?>
</div>
</div>

	<?php
} elseif ($category_depth == 'products' || isset($HTTP_GET_VARS['manufacturers_id'])) {
	// create column list
	$define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,
                         'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,
                         'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER,
                         'PRODUCT_LIST_PRICE' => PRODUCT_LIST_PRICE,
                         'PRODUCT_LIST_QUANTITY' => PRODUCT_LIST_QUANTITY,
                         'PRODUCT_LIST_WEIGHT' => PRODUCT_LIST_WEIGHT,
                         'PRODUCT_LIST_IMAGE' => PRODUCT_LIST_IMAGE,
                         'PRODUCT_LIST_BUY_NOW' => PRODUCT_LIST_BUY_NOW);

	asort($define_list);

	$column_list = array();
	reset($define_list);
	while (list($key, $value) = each($define_list)) {
		if ($value > 0) $column_list[] = $key;
	}

	$select_column_list = '';

	for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
		switch ($column_list[$i]) {
			case 'PRODUCT_LIST_MODEL':
				$select_column_list .= 'p.products_model, ';
				break;
			case 'PRODUCT_LIST_NAME':
				$select_column_list .= 'pd.products_name, ';
				break;
			case 'PRODUCT_LIST_MANUFACTURER':
				$select_column_list .= 'm.manufacturers_name, ';
				break;
			case 'PRODUCT_LIST_QUANTITY':
				$select_column_list .= 'p.products_quantity, ';
				break;
			case 'PRODUCT_LIST_IMAGE':
				$select_column_list .= 'p.products_image, ';
				break;
			case 'PRODUCT_LIST_WEIGHT':
				$select_column_list .= 'p.products_weight, ';
				break;
		}
	}

	// show the products of a specified manufacturer
	if (isset($HTTP_GET_VARS['manufacturers_id'])) {
		if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
			// We are asked to show only a specific category
			$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "'";
		} else {
			// We show them all
			$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'";
		}
	} else {
		// show the products in a given categorie
		if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
			// We are asked to show only specific catgeory
			$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
		} else {
			// We show them all
			$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
		}
	}

	if ( (!isset($HTTP_GET_VARS['sort'])) || (!preg_match('/^[1-8][ad]$/', $HTTP_GET_VARS['sort'])) || (substr($HTTP_GET_VARS['sort'], 0, 1) > sizeof($column_list)) ) {
		for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
			if ($column_list[$i] == 'PRODUCT_LIST_NAME') {
				$HTTP_GET_VARS['sort'] = $i+1 . 'a';
				$listing_sql .= " order by pd.products_name";
				break;
			}
		}
	} else {
		$sort_col = substr($HTTP_GET_VARS['sort'], 0 , 1);
		$sort_order = substr($HTTP_GET_VARS['sort'], 1);

		switch ($column_list[$sort_col-1]) {
			case 'PRODUCT_LIST_MODEL':
				$listing_sql .= " order by p.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
				break;
			case 'PRODUCT_LIST_NAME':
				$listing_sql .= " order by pd.products_name " . ($sort_order == 'd' ? 'desc' : '');
				break;
			case 'PRODUCT_LIST_MANUFACTURER':
				$listing_sql .= " order by m.manufacturers_name " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
				break;
			case 'PRODUCT_LIST_QUANTITY':
				$listing_sql .= " order by p.products_quantity " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
				break;
			case 'PRODUCT_LIST_IMAGE':
				$listing_sql .= " order by pd.products_name";
				break;
			case 'PRODUCT_LIST_WEIGHT':
				$listing_sql .= " order by p.products_weight " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
				break;
			case 'PRODUCT_LIST_PRICE':
				$listing_sql .= " order by final_price " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
				break;
		}
	}

	$catname = HEADING_TITLE;
	if (isset($HTTP_GET_VARS['manufacturers_id'])) {
		$image = tep_db_query("select manufacturers_image, manufacturers_name as catname from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");
		$image = tep_db_fetch_array($image);
		$catname = $image['catname'];
	} elseif ($current_category_id) {
		$image = tep_db_query("select c.categories_image, cd.categories_name as catname from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$current_category_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'");
		$image = tep_db_fetch_array($image);
		$catname = $image['catname'];
	}
	?>
<!-- Breadcrumb -->
	<div class="ui-widget">
		<div class="infoBoxContainerBreadcrumb"><?php echo '&nbsp;&nbsp;' . $breadcrumb->trail(' &raquo; '); ?></div>
	</div>
<h1><?php echo $catname; ?></h1>

<div class="contentContainer"><?php
// optional Product List Filter
if (PRODUCT_LIST_FILTER > 0) {
	if (isset($HTTP_GET_VARS['manufacturers_id'])) {
		$filterlist_sql = "select distinct c.categories_id as id, cd.categories_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where p.products_status = '1' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and p2c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' order by cd.categories_name";
	} else {
		$filterlist_sql= "select distinct m.manufacturers_id as id, m.manufacturers_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$current_category_id . "' order by m.manufacturers_name";
	}
	$filterlist_query = tep_db_query($filterlist_sql);
	if (tep_db_num_rows($filterlist_query) > 1) {
		echo '<div>' . tep_draw_form('filter', FILENAME_DEFAULT, 'get') . '<p align="right">' . TEXT_SHOW . '&nbsp;';
		if (isset($HTTP_GET_VARS['manufacturers_id'])) {
			echo tep_draw_hidden_field('manufacturers_id', $HTTP_GET_VARS['manufacturers_id']);
			$options = array(array('id' => '', 'text' => TEXT_ALL_CATEGORIES));
		} else {
			echo tep_draw_hidden_field('cPath', $cPath);
			$options = array(array('id' => '', 'text' => TEXT_ALL_MANUFACTURERS));
		}
		echo tep_draw_hidden_field('sort', $HTTP_GET_VARS['sort']);
		while ($filterlist = tep_db_fetch_array($filterlist_query)) {
			$options[] = array('id' => $filterlist['id'], 'text' => $filterlist['name']);
		}
		echo tep_draw_pull_down_menu('filter_id', $options, (isset($HTTP_GET_VARS['filter_id']) ? $HTTP_GET_VARS['filter_id'] : ''), 'onchange="this.form.submit()"');
		echo tep_hide_session_id() . '</p></form></div>' . "\n";
	}
}

include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING);
?></div>

<?php
} else { // default page
	// Start Modular Front Page
	?>

<div class="contentContainer"><?php echo $oscTemplate->getBlocks('front_page'); ?>

</div>

	<?php
	// End Modular Front Page
}

require(DIR_WS_INCLUDES . 'template_bottom.php');
require(DIR_WS_INCLUDES . 'application_bottom.php');
?>
